# MakeBy: LiuBoyuan

class db_config:
    username = "root"
    password = "20021003"
    server = "127.0.0.1"
    port = 3306
    dbname = "wanketongzao"



from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker


async def get_sission():
    sisson = SessionLocal()
    try:
        yield sisson
    finally:
        sisson.close_all()


MYSQLURL = f"mysql+pymysql://{db_config.username}:{db_config.password}@{db_config.server}:{db_config.port}/{db_config.dbname}"
engine = create_engine(MYSQLURL, pool_pre_ping=True)  # 创建链接对象
SessionLocal = sessionmaker(autocommit=False, expire_on_commit=False, bind=engine)  # 创建一个会话类
"""
autocommit: 是否自动提交。默认是 True,意味着每条语句执行后都会自动提交数据库事务。
如果设置为 False,则需要手动调用 session.commit() 来提交事务。

expire_on_commit: 是否在每次 commit 后清空 session 缓存。默认是 True,意味着每次提交后
,session 都会丢弃对象并重新加载数据。如果设置为 False,则 commit 后对象会留在 session 中,
并且 session 会跟踪它们的变化。
"""

Base = declarative_base()  # 处理数据库的ORM
